package com.funsport.common.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;

/**
 * 用户角色枚举
 *
 * @author Fun-Sport Team
 */
@Getter
public enum UserRole {

    /**
     * 普通用户
     */
    CUSTOMER("customer", "普通用户"),

    /**
     * 场地管理员
     */
    VENUE_MANAGER("venue_manager", "场地管理员"),

    /**
     * 平台管理员
     */
    ADMIN("admin", "平台管理员");

    @EnumValue
    @JsonValue
    private final String value;

    private final String description;

    UserRole(String value, String description) {
        this.value = value;
        this.description = description;
    }

    /**
     * 根据值获取枚举
     */
    public static UserRole fromValue(String value) {
        for (UserRole role : UserRole.values()) {
            if (role.getValue().equals(value)) {
                return role;
            }
        }
        throw new IllegalArgumentException("无效的用户角色: " + value);
    }
}

